
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>SpringSecurity在项目做什么用的 - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>SpringSecurity在项目做什么用的 - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">Spring Security中的“身份认证”（Authentication）核心用途是什么？列举至少三种实现方式。</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">其核心用途是确保用户身份的真实性，即验证用户是他们声称的那个人。文档中提到的实现方式包括：表单登录、基本认证、OAuth2 / OpenID Connect 以及 LDAP 认证。</div>
          </div>
          <div class="card-source">来源: 1. 身份认证（Authentication）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">Spring Security中的“授权”（Authorization）与身份认证有何区别？它的主要实现方式有哪些？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">授权是确定已经通过身份认证的用户是否有权限执行特定操作或访问某些资源的过程。其主要实现方式包括：基于角色的访问控制（RBAC）、基于权限的访问控制和方法级安全。</div>
          </div>
          <div class="card-source">来源: 2. 授权（Authorization）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">Spring Security的会话管理功能旨在防范哪些安全问题？它通过哪些具体机制来实现？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">会话管理旨在防止会话固定攻击和会话劫持等安全问题。它通过三种机制实现：1. 会话固定攻击防护（在登录时重新生成会话ID）；2. 配置会话超时策略；3. 并发会话控制（限制每个用户的并发会话数）。</div>
          </div>
          <div class="card-source">来源: 3. 会话管理（Session Management）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">在密码管理方面，Spring Security推荐使用哪类算法来保证密码存储的安全？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">为了确保密码安全，推荐使用强哈希算法（如 BCrypt、PBKDF2）对密码进行加密存储。</div>
          </div>
          <div class="card-source">来源: 4. 密码管理</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">Spring Security是如何实现对跨站请求伪造（CSRF）攻击的防护的？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Spring Security通过使用CSRF令牌来验证请求的合法性，从而防止恶意网站发起伪造请求来攻击用户的应用程序。</div>
          </div>
          <div class="card-source">来源: 5. 跨站请求伪造（CSRF）保护</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">为了防御跨站脚本攻击（XSS），Spring Security采用了什么核心技术？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">它通过设置内容安全策略（Content Security Policy, CSP）HTTP头来防止恶意用户在应用程序中注入恶意脚本代码，从而实现对XSS的防护。</div>
          </div>
          <div class="card-source">来源: 6. 跨站脚本攻击（XSS）保护</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">除了传统的用户名密码认证，Spring Security还支持哪些与外部服务集成的认证方式？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Spring Security支持与第三方认证服务集成（如使用OAuth2/OpenID Connect协议的Google、Facebook）以及与LDAP（轻量目录访问协议）服务集成进行用户认证。</div>
          </div>
          <div class="card-source">来源: 1. 身份认证（Authentication）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">在Spring Security中，“方法级安全”指的是什么？它属于哪一安全范畴？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">“方法级安全”指的是使用注解在方法级别上直接定义权限要求，以控制谁可以调用该方法。它属于“授权”（Authorization）的实现方式之一。</div>
          </div>
          <div class="card-source">来源: 2. 授权（Authorization）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">Spring Security的日志记录和监控功能主要关注哪些类型的安全事件？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">该功能主要关注记录关键的安全事件，如用户登录、登出和访问控制决策等，并可以集成监控工具来监控安全相关的活动和异常。</div>
          </div>
          <div class="card-source">来源: 7. 日志记录和监控</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
